/**
 * 
 */
package cn.loioi.util.page.query;

import javax.persistence.Column;

import org.apache.commons.lang3.StringUtils;

/**
 * 排序类
 * @file_name :Sort.java
 * @author :loioi.cn
 * @创建时间 :2016年10月31日 上午11:13:12
 */
public class Sort {

	private String sort;
	private Direction direction = Direction.ASC;

	public Sort(String sort) {
		this.sort = sort;
	}

	/**
	 * 获取排序字段
	 * @return
	 */
	public String sort() {
		return sort;
	}

	/**
	 * 设置排序方式
	 * @param direction
	 */
	public void direction(String direction) {
		this.direction = Direction.parse(direction);
	}

	/**
	 * 设置为正序
	 */
	public void asc() {
		this.direction = Direction.ASC;
	}

	/**
	 * 设置为倒序
	 */
	public void desc() {
		this.direction = Direction.DESC;
	}

	/**
	 * 判断是否为空
	 * @return
	 */
	public boolean empty() {
		return StringUtils.isEmpty(sort);
	}

	@Override
	public String toString() {
		return sort + " " + direction.name();
	}

	/**
	 * 将字段转为查询所用格式
	 * @param column
	 * @return
	 */
	public String toString(String colum) {
		if (StringUtils.isEmpty(colum)) {
			return sort + " " + direction.name();
		} else {
			return colum + " " + direction.name();
		}
	}

	/**
	 * 将字段转为查询所用格式
	 * @param column
	 * @return
	 */
	public String toString(Column column) {
		return toString(column != null ? column.name() : null);
	}
}
